Pytorch - Tiny-cuda-nn 环境配置
Tiny-cuda-nn 环境配置
Tiny-cuda-nn,一个轻量级的神经网络算子加速库,可用于 Pytorch 扩展
研究其代码后,发现其主要依靠 Pytorch 内置的 Cpp_extension 功能来编译为用户扩展算子。相关 Pytorch 特性可以查看下方链接
下文介绍如何配置 Tiny-cuda-nn 环境
环境配置
参照 Tiny-cuda-nn 环境配置官方文档
- 检查 CUDA 环境
首先检查全局 CUDA 环境是否安装,一般查看是否存在路径 /usr/local/cuda
即可
其次检查全局的 nvcc 编译器版本是否匹配,通过命令 nvcc -version
查看 nvcc 版本,与 CUDA 版本进行比对,确保大版本号一致
- 准备 Python 环境
依据官方文档,使用 Pytorch 的 2.0.0 版本,Python 版本无限制,此处以 Python 3.11 版本演示
1 | conda create -n env_name python=3.11 |
- 编译 tiny-cuda-nn
接着借助 Pytorch 的 Cpp 扩展来编译 Tiny-cuda-nn,此部分大概用时 30min
1 | git clone --recursive https://github.com/nvlabs/tiny-cuda-nn |
- 检查
不出意外,一个叫做 tinycudann 的 pip 第三方包就安装完毕了
运行下方代码检查是否安装成功
1 | import tinycudann |
可能报错及原因分析
- Pytorch 无法使用 CUDA
请检查 Pytorch 下载的 cuda 版本是否与主机 cuda 版本匹配
- 找不到 CUDA_HOME
请检查全局 CUDA 环境是否安装,一般查看是否存在路径 /usr/local/cuda
即可
- 编译器 CUDA 版本不匹配
请检查全局的 nvcc 编译器版本是否匹配,通过命令 nvcc -version
查看 nvcc 版本,与 CUDA 版本进行比对,确保大版本号一致
- 编译时发现 libtorch 头文件缺失
请检查 Pytorch 版本是否为 2.0.0,若版本过高会有头文件缺失的情况
后言
墨子号说配这个环境搞了一周也没搞定,于是我今晚看了一下,发现涉及到很多 cuda 底层版本对应和编译的东西,着实头疼
两三个小时配了一下,并不复杂,顺便把各种报错及其原因也分析了一遍,收获很多
期间也是览了很多 Pytorch 的算子扩展原理、CUDA 编译原理之类的,确实很有趣